package com.example.partyfee.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 工资数据DTO
 */
@Data
public class SalaryDTO {
    /**
     * 所在班级
     */
    @NotBlank(message = "所在班级不能为空")
    private String className;

    /**
     * 职务
     */
    @NotBlank(message = "职务不能为空")
    private String position;

    /**
     * 姓名
     */
    @NotBlank(message = "姓名不能为空")
    private String name;

    /**
     * 身份证号
     */
    @NotBlank(message = "身份证号不能为空")
    private String idCard;

    /**
     * 标识号
     */
    @NotBlank(message = "标识号不能为空")
    private String identifier;

    /**
     * 基础工资
     */
    @NotNull(message = "基础工资不能为空")
    private BigDecimal basicSalary;

    /**
     * 绩效工资
     */
    @NotNull(message = "绩效工资不能为空")
    private BigDecimal performanceSalary;

    /**
     * 单项奖
     */
    @NotNull(message = "单项奖不能为空")
    private BigDecimal individualBonus;

    /**
     * 企业年金
     */
    @NotNull(message = "企业年金不能为空")
    private BigDecimal enterprisePension;

    /**
     * 养老保险
     */
    @NotNull(message = "养老保险不能为空")
    private BigDecimal endowmentInsurance;

    /**
     * 失业保险
     */
    @NotNull(message = "失业保险不能为空")
    private BigDecimal unemploymentInsurance;

    /**
     * 医疗保险
     */
    @NotNull(message = "医疗保险不能为空")
    private BigDecimal medicalInsurance;

    /**
     * 住房公积金
     */
    @NotNull(message = "住房公积金不能为空")
    private BigDecimal housingFund;

    /**
     * 个税
     */
    @NotNull(message = "个税不能为空")
    private BigDecimal personalTax;

    /**
     * 补扣项一
     */
    private BigDecimal deductionOne;

    /**
     * 补扣项二
     */
    private BigDecimal deductionTwo;

    /**
     * 工资月份（格式：yyyy-MM）
     */
    @NotBlank(message = "工资月份不能为空")
    private String salaryMonth;
} 